Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check for remote url instead of .git existence #2102

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

hmtheboy154
Copy link
Contributor

@hmtheboy154 hmtheboy154 commented Sep 30, 2024

Current implementation of .git checking have some issues:

  • If a kernel source being cloned using git-repo tool, especially newer version, it will clone .git in .repo inside of the submodule source.
  • Newer kernel source changed how $(src) & $(srctree) output. In the case of kernel 6.11 as I tested $(src) show the relative path of the symlink in drivers/ instead of KernelSU main directory. Which makes checking for ../.git existence completely useless.

One idea I would like to propose is to check for the remote URL in $(src). If the remote is correct then we can assume this is KSU repo and then count the version (also unshallow the repo). Here's what I did:

  • Check if kernel is 6.9+ and then change $(src) accordingly.
  • Print $(src) remote in verbose and check for the correct URL (both ssh & https).
  • If correct, check if the repo is shallow by using git rev-parse --is-shallow-repository. Unshallow if it's return true.
  • Calculate version as usual.

The only drawback I can see so far is that forks will have to edit the url in the Makefile, which I don't think it's much of an issue.

Current implementation of .git checking have some issues:
- If a kernel source being cloned using git-repo tool, especially
newer version, it will clone .git in .repo inside of the submodule
source.
- Newer kernel source changed how $(src) & $(srctree) output. In
the case of kernel 6.11 as I tested $(src) show the relative path
of the symlink in drivers/ instead of KernelSU main directory.
Which makes checking for ../.git existence comletely useless.

One idea I would like to propose is to check for the remote URL in
$(src). If the remote is correct then we can assume this is
KSU repo and then count the version (also unshallow the repo).
Here's what I did:
- Check if kernel is 6.9+ and then change $(src) accordingly.
- Print $(src) remote in verbose and check for the correct
 URL (both ssh & https).
- If correct, check if the repo is shallow by using
git rev-parse --is-shallow-repository. Unshallow if it's return true.
- Calculate version as usual.

The only drawback I can see so far is that forks will have to edit
the url in the Makefile, which I don't think it's much of an issue.

Signed-off-by: hmtheboy154 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant